import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Capitan extends Roles { 
   
    protected int barco1,barco2,barco3; // carga del barco
    protected String b1,b2,b3;//tipo de mercancia que lleva cada barco
    protected int c1,c2,c3; //capacidad del barco
    private Recursos rec=Recursos.getInstancia();
   
   
    public Capitan(){
        barco1=0;
        b1="";  //mercancia que lleva el barco 1
        c1=5;    //capacidad que tiene el barco 1
        barco2=0;
        b2="";
        c2=6;
        barco3=0;
        b3="";
        c3=7;
    }
    // hacer los gets y sets    public List
    public int getbarco1(){
        return barco1;
    }
    public int getbarco2(){
        return barco2;
    }
    public int getbarco3(){
        return barco3;
    }
    public void anadeBarco1(){
        barco1++;
    }
    public void anadeBarco2(){
        barco2++;
    }
    public void anadeBarco3(){
        barco3++;
    }
    public void ensenaBarco1(){
        System.out.printf("el barco 1 lleva plantaciones de: %s con una carga de: %d",b1,barco1);
    }
    public void ensenaBarco2(){
        System.out.printf("el barco 2 lleva plantaciones de: %s con una carga de: %d",b2,barco2);
    }
    public void ensenaBarco3(){
        System.out.printf("el barco 3 lleva plantaciones de: %s con una carga de: %d",b3,barco3);
    }
       
       
    public void accion (Jugador j, boolean privilegios){
    if(privilegios){
        j.anadirpv(1);
        try{
        rec.decrementaPV(1);
        }catch(Exception e){}
    }
    ensenaBarco1();
    ensenaBarco2();
    ensenaBarco3();
    int eleccion=0;
    try{
        System.out.println("Selecciona el barco donde deseas poner tus planatciones: ");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String key = br.readLine();
        eleccion=Integer.parseInt(key);
    } catch(Exception e){}
    Map<String,Integer> mercancias=j.getMercancias();  
    String mer;
    if(eleccion==1){
        mer=b1;
    }else if(eleccion==2){
        mer=b2;
    }else{
        mer=b3;
    }
    if(mer.equals("")){
        try{
            System.out.println("Selecciona el tipo de plantaciones que quieres poner: ");
            Set<String> merc=mercancias.keySet();
            Iterator<String> it = merc.iterator();
            int h=1;
            while (it.hasNext()){
                String mercan=(String)it.next();
                int b=mercancias.get(mercan);
                if (b!=0){
                    System.out.printf("%d) %s",h,mercan);
                    h++;
                }
               
            }
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String key = (String)br.readLine();
            int c=Integer.parseInt(key);
            switch(c){
            case 1:
                key="Maiz";
                break;
            case 2:
                key="Indigo";
                break;
            case 3:
                key="Cafe";
                break;
            case 4:
                key="Tabaco";
                break;
            default:
                key="Azucar";
                break;
            }
            if(eleccion==1){
                b1=key;
            }else if(eleccion==2){
                b2=key;
            }else{
                b3=key;
            }
        }catch(Exception e){}
    }
    int barco,capacidad;
    if(eleccion==1){
        mer=b1;
        barco=barco1;
        capacidad=c1;
    }else if(eleccion==2){
        mer=b2;
        barco=barco2;
        capacidad=c2;
    }else{
        mer=b3;
        barco=barco3;
        capacidad=c3;
    }
    int a=mercancias.get(mer);
    int b=capacidad-(barco+a);
    if(b<0){
        mercancias.put(mer, a-(capacidad-barco));
        if(eleccion==1){
            barco1=c1;
            j.anadirpv(capacidad-barco);
            try{
                rec.decrementaPV(1);
                }catch(Exception e){}
        }else if(eleccion==2){
            barco2=c2;
            j.anadirpv(capacidad-barco);
            try{
                rec.decrementaPV(1);
                }catch(Exception e){}
        }else{
            barco3=c3;
            j.anadirpv(capacidad-barco);
            try{
                rec.decrementaPV(1);
                }catch(Exception e){}
        }
    }else{
        mercancias.put(mer, 0);
        if(eleccion==1){
            barco1=barco1+a;
            j.anadirpv(a);
            try{
                rec.decrementaPV(1);
                }catch(Exception e){}
        }else if(eleccion==2){
            barco2=barco2+a;
            j.anadirpv(a);
            try{
                rec.decrementaPV(1);
                }catch(Exception e){}
        }else{
            barco3=barco3+a;
            j.anadirpv(a);
            try{
                rec.decrementaPV(1);
                }catch(Exception e){}
        }
    }
    if(barco1==c1){
        barco1=0;
        b1="";
    }
    if(barco2==c2){
        barco2=0;
        b2="";
    }
    if(barco3==c3){
        barco3=0;
        b3="";
    }
    }

   
}